//
//  TFJsonObjectDatabaseObject.h
//  TFFoundation
//
//  Created by TFAppleWork-Summer on 2017/4/1.
//  Copyright © 2017年 TFAppleWork-Summer. All rights reserved.
//

#import "TFDatabaseObject.h"
//创建表的sql
extern NSString * _Nonnull  const kTFJsonObjectDatabaseObjectCreateTableSql;
//更新或者插入数据的sql
extern NSString * _Nonnull const kTFJsonObjectDatabaseObjectUpdateItemSql;
//查询的sql
extern NSString * _Nonnull const kkTFJsonObjectDatabaseObjectQueryItemSql;
//删除某个item的sql
extern NSString * _Nonnull const kTFJsonObjectDatabaseObjectDeleteItemSql;
//删除多个item的sql
extern NSString * _Nonnull const kTFJsonObjectDatabaseObjectDeleteItemsSql;

/**
 json对象的数据库对象
 */
@interface TFJsonObjectDatabaseObject : TFDatabaseObject

/**
 根据表的名字创建表
 
 @param name 表名字
 @return 是否创建成功
 */
- (BOOL)createTableWithName:(nonnull NSString *)name;

/**
 保存json数据到数据库
 
 @param tableName 表名字
 @param object json数据模型
 @param objectId 数据的唯一标识
 @return 是否保存成功
 */
- (BOOL)saveJsonObjectToTableWithTableName:(nonnull NSString *)tableName object:(nonnull id)object objectId:(nonnull NSString *)objectId;

/**
 根据表名字和唯一标识获取对应的json对象
 
 @param tableName 表名字
 @param objectId 数据的唯一标识
 @return 保存的json数据
 */
- (nullable id)getJsonObjectWithTableName:(nonnull NSString *)tableName objectId:(nonnull NSString *)objectId;

/**
 根据表名字获取所有的Json对象

 @param tableName 表名字
 @return NSArray数据数组
 */
- (nullable NSArray *)getAllJsonObjectsWithTableName:(nonnull NSString *)tableName;

/**
 根据表名字和唯一标识删除一条数据
 
 @param tableName 表名字
 @param objectId 唯一标识
 @return 是否删除成功
 */
- (BOOL)deleteObjectWithTableName:(nonnull NSString *)tableName objectId:(nonnull NSString *)objectId;

/**
 根据数据唯一标识数组删除数据
 
 @param tableName 表名字
 @param objectIdsArray 唯一标识数组
 @return 是否删除成功
 */
- (BOOL)deleteObjectsWithTableName:(nonnull NSString *)tableName ObjectIdsArray:(nonnull NSArray<NSString *> *)objectIdsArray;


@end
